// 用个递归，拍到平为止
function flat(arr) {
  // 验证 arr 中，还有没有深层数组 [1,2,[3,4]]

  const isDeep = arr.some((item) => item instanceof Array);

  if (!isDeep) {
    return arr;
  }

  const res = Array.prototype.concat.apply([], arr);

  return flat(res);
}

arr = [1, 2, 3, [4, 5], 6];

console.log(Array.prototype.concat.apply([], arr));

console.log(Array.prototype.concat.call([], 1, 2, 3, [4, 5], 6));

console.log([].concat(1, 2, 3, [4, 5], 6));
